Шаг 586 - CMenu::ModifyMenu.

Автор Каев А. Г.
BOOL ModifyMenu( UINT nPosition, UINT nFlags, UINT nIDNewItem = 0, LPCTSTR lpszNewItem = NULL );
BOOL ModifyMenu( UINT nPosition, UINT nFlags, UINT nIDNewItem, const CBitmap* pBmp );

Возвращаемое значение
Отлично от нуля если функция успешна, иначе 0.

Параметры
nPosition
Определяет пункт меню который будет изменен. nFlags параметр может использоваться, чтобы интерпретировать nPosition следующими способами:

MF_BYCOMMAND 	Определяет, что параметр дает команду ID существующего пункта меню. 
		Это - значение по умолчанию, если ни MF_BYCOMMAND ни MF_BYPOSITION не установлен. 
MF_BYPOSITION 	Определяет, что параметр дает позицию существующего пункта меню. 
		Первый элемент - в позиции 0.

nFlags
Определяет, как nPosition интерпретируется и дает информацию относительно изменений, которые будут сделаны к пункту меню. Для списка флажков, которые могут быть установлены, см. AppendMenu функцию.
nIDNewItem
Определяет или команду ID изменяемого пункта меню или, если nFlags установлен к MF_POPUP, дескриптор всплывающего меню (HMENU). nIDNewItem параметр игнорируется (не необходимый) если nFlags установлен к MF_SEPARATOR.
lpszNewItem
Определяет содержание нового пункта меню. nFlags параметр может использоваться, чтобы интерпретировать lpszNewItem следующими способами:

MF_OWNERDRAW 	Содержит обеспеченное прикладная программой 32-разрядное значение, 
		что прикладная программа может использовать, чтобы поддержать дополнительные данные, 
		связанные с пунктом меню. Это 32-разрядное значение доступно прикладной программе, 
		когда это обрабатывает MF_MEASUREITEM и MF_DRAWITEM. 
MF_STRING 	Содержит длинный указатель на строку с нулевым символом в конце или к CString. 
MF_SEPARATOR 	lpszNewItem параметр игнорируется.

pBmp
Указатель на объект CBitmap, который будет использоваться как пункт меню.

Замечания
Изменяет существующий пункт меню в позиции, определенной nPosition. Прикладная программа определяет новое состояние пункта меню, устанавливая значения в nFlags. Если эта функция заменяет всплывающее меню связанные пункты меню, это уничтожает старое всплывающее меню и освобождает память используемую меню.
Когда nIDNewItem определяет всплывающее меню это становится частью меню, в которое это вставлено. Если то меню разрушено, вставленное меню будет также разрушено. Вставленное меню должно отсоединиться из объекта CMenu, чтобы избежать конфликта.
Всякий раз, когда меню, которое постоянно находится в окне, изменено (отображается или нет окно), прикладная программа должна вызвать CWnd::DrawMenuBar. Чтобы изменять(заменять) атрибуты существующих пунктов меню, намного быстрее использовать CheckMenuItem и EnableMenuItem функции.

Hosted by uCoz